package com.boarsoft.boar.batch.service;

/**
 * 批量调度接口
 * 
 * @author Mac_J
 *
 */
public interface BatchDispatcher {
	/**
	 * 使用挂起时保存的现场数据（参数）续跑指定的批量
	 * 
	 * @param exeId
	 * @return
	 */
	int resume(String exeId);

	/**
	 * 使用初始参数，重跑指定批量<br/>
	 * 如果重跑时需要修改参数，请直接修改相应执行记录中保存的参数
	 * 
	 * @param exeId
	 */
	int redo(String exeId);

	/**
	 * 调起批量
	 * 
	 * @param infoId
	 *            批量ID（不是code）
	 * @return 执行节点的地址
	 */
	int start(String infoId);

	/**
	 * 参数调起批量的方法
	 * 
	 * @param infoId
	 *            批量ID（不是code）
	 * @param params
	 *            执行参数
	 * @return
	 */
	int start(String infoId, String params);

	/**
	 * 用与从指定位置开始执行某个流程式批量
	 * 
	 * @param infoId
	 * @param entry
	 * @param params
	 * @return
	 */
	int start(String infoId, String entry, String params);

	/**
	 * 取消某批量的执行<br>
	 * 将状态为执行中、挂起中的批量(1/4)的状态改为取消中
	 * 
	 * @param exeId
	 * @param force
	 *            是否强制停止，正在运行中的分包会被中断
	 */
	int cancel(String exeId, boolean force);
}
